package org.dxy.domain.port;

import org.dxy.domain.event.DomainEvent;

import java.util.List;

public interface IEventRepository {

    /**
     * 保存待处理的领域事件（例如插入到事件表中），通常用于聚合根生成事件后暂存到事件存储中。
     *
     * @param events 要保存的领域事件列表
     * @return 保存的事件ID列表
     */
    List<Long> saveEvents(List<DomainEvent> events);


    /**
     * 标记已发布的事件（通常供事件总线调用，用于幂等控制、避免重复发布）
     *
     * @param eventIds 已成功发布的事件 ID 列表
     * @return 更新成功返回 true，失败返回 false
     */
    boolean markEventsPublished(List<Long> eventIds);
}
